#pragma once
#include "Types.h"
#include <string>

struct SDL_Surface;
class Texture;

class Surface
{
public:
	Surface(SDL_Surface *surf);
	Surface();
	~Surface();
	Texture CreateTexture();
	bool IsValidSurface();
	void FreeSurface();
	Surface Optimize();
	Surface Copy();
	uint Width();
	uint Heigth();
	uint Depth();
	SDL_Surface *GetSurface();

protected:
	void OptimizeSelf();

protected:
	bool m_bValidSurface;
	SDL_Surface *m_pSurface;
};